﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WPFCalculadora
{

    public class EML
    {
        String num;

        public String Num
        {
            get { return num; }
            set { num = value; }
        }

        public EML(String n)
        {
            num = n;
        }

        public EML suma(EML e)
        {
            EML res = new EML(suma(e.Num));
            return res;
        }

        private String suma(String n)
        {
            String res = "";
            int enPorto = 0;

            //Igualar els números per sumar.
            if (this.num.Length != n.Length)
            {
                if (this.num.Length < n.Length)
                {
                    //Afegir 0 a l'esquerre a this.num.
                    this.num = this.num.PadLeft(n.Length, '0');
                }
                else
                {
                    //Afegir 0 a l'esquerre a n.
                    n = n.PadLeft(this.num.Length, '0');
                }
            }

            //Recorregut sumant tots els números.
            for (int i = (n.Length - 1); i >= 0; i--)
            {
                int digit1 = int.Parse(num[i].ToString());
                int digit2 = int.Parse(n[i].ToString());
                int suma = (digit1 + digit2) + enPorto;
                if (suma > 9)
                {
                    enPorto = 1;
                    suma = suma % 10;
                }
                else
                {
                    enPorto = 0;
                }

                res = suma + res;
            }

            //Afegir el número que portem al final de tot.
            if (enPorto > 0)
                res = enPorto + res;
            Console.WriteLine("DEBUG....");

            return res;
        }

        public EML resta(EML n)
        {
            return new EML("0");
        }

        public override String ToString()
        {
            return this.Num;
        }
    }

}
